package com.ssy.lingxi.system.dao;

import com.ssy.lingxi.system.entity.MenuCode;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 菜单编码仓库接口
 * @author 万宁
 * @version 2.0.0
 * @date 2021-01-14
 */
@Repository
public interface MenuCodeRepository extends JpaRepository<MenuCode, Long>, JpaSpecificationExecutor<MenuCode> {

    /**
     *  是否已经存在
     * @param code 大写的编码
     * @param source 适用的平台客户端
     * @return 是/否
     */
    Boolean existsByCodeAndSource(String code, Integer source);

    /**
     * 是否已经存在
     * @param code 大写的编码
     * @param source 适用的平台客户端
     * @param id 主键Id
     * @return 是/否
     */
    Boolean existsByCodeAndSourceAndIdNot(String code, Integer source, Long id);

    /**
     * 根据code，source查找第一个菜单编码
     * @param code 编码
     * @param source 适用的平台客户端
     * @return 查询结果
     */
    MenuCode findFirstByCodeAndSource(String code, Integer source);

    /**
     * 查询菜单编码列表
     * @param source 适用的平台客户端
     * @param sort 排序条件
     * @return 查询列表
     */
    List<MenuCode> findBySource(Integer source , Sort sort);
}

